从零开始的unity3d入门教程(二) |
您所在的位置:网站首页 › unity 3d简介 › 从零开始的unity3d入门教程(二) |
从零开始的unity3d入门教程(二)----基本功能讲解
文章目录
从零开始的unity3d入门教程(二)----基本功能讲解一、教学目标二、Unity界面的摆放与介绍1、Unity界面移动及复原(1)窗口移动方式(2)窗口初始化方法
2、平常工作界面(1)Layouts转换成2 by 3类型(2)最终工作窗口如下
3、各个窗口的中文名及其功能简述
二、游戏物体GameObject的创建与修改1、创建一个正方体2、3D Object介绍3、3D Object创建练习4、Cube Object Transform属性修改练习(1)选定Scene中的对象(2)删除Scene中的对象(3)Scene窗口基本操作练习(4)Cube对象的Transform组件修改(5)Cube对象的Transform组件属性快捷键修改
三、常用功能与组件介绍与练习1、Gizmo 导航器2、场景布置常用操作与组件(1)复制物体(2)光照设置(3)主摄像头(4)利用切换视图与角点吸附搭建场景a、不断转换视角搭建场景b、角点吸附搭建场景
四、搭建游戏场景,诸葛亮的八卦阵!1、保存搭建地图参考图2、新建空对象并改名与地面3、将地图参考图 导入Unity3d项目4、创建Cube按照地图参考图摆放5、生成迷宫预制体(1) 新建一个空物体命名为迷宫,并列入刚刚的建模模型(2)将迷宫拖拽到prefab文件夹内
五、玩家创建1、玩家 Player!2、创建一个实现玩家移动控制功能的C#文件3、将MoveControl脚本添加进Player4、给Player添加刚体组件5、第一人称摄像头设置(1)让摄像头的position与Player的position一致(2)调整下摄像头的角度与Field of View 视场(3)令Main Camera成为Player的子对象
六、游戏音效添加1、免费音乐资源网站推荐2、下载音乐,并将其加载进Unity中3、添加游戏音效
七、开始运行游戏与游戏导出1、运行测试2、游戏导出
八、结语
一、教学目标
独立搭建出一个简单场景,并基于该场景开发一个简单的第一人称3D游戏
这是界面中各个窗口的默认摆放位置,也是项目刚打开时候的样子
有时候窗口玩坏了怎么办?一键复原! Window–>Layouts–>Default ![]() ![]() ![]() 移动并调整下各个窗口的宽高 令各个窗口摆放位置一般如下 向Unity世界发出一声HelloWorld吧,Unity世界在此刻将为你缓缓展开! 鼠标移动到Hierarchy窗口下的任意区域,右键3D Object -->Cube![]() ![]() 最终目标图如下: (2)创建Plane放在中间 (3)创建一个Text 在对Cube的Transform组件修改之前需求先练习一下如下技巧。 选定物体练习删除物体练习Scene窗口画面放大、移动、旋转角度和对象追踪的练习 (1)选定Scene中的对象 对象选定方法 在Scene窗口中左键点击并拖拽,最后松开,即可批量选定矩形框定的对象![]() ![]() 界面有些嘈杂,我们将其他不是Cube和初始的Camera和Light的对象删掉吧 对象删除方法 在选定对象后,按一个在你键盘右上角附近的键:Delete。即可删除所有选定的对象 (3)Scene窗口基本操作练习Scene窗口纵深前进后退的方法:鼠标滚轮滚动 或 Alt+鼠标滚轮滚动,向前滚动窗口画面前进。向后滚动,窗口画面后退。 注:直接滚动,窗口视图是向中心前进。Alt+鼠标滚动则可以选择窗口视图向哪个方向前进 Scene窗口上下左右移动的方法:鼠标滚轮摁住拖拽,鼠标前移,画面向上、鼠标左移,画面向左等等,其他方向同理 Scene窗口以当前位置为旋转原点的角度旋转的方法:鼠标右键摁住拖拽,鼠标前移,画面向上旋转、鼠标左移,画面向左旋转等等,其他方向同理 Scene窗口以窗口中心位置为旋转原点的角度旋转的方法:Alt+鼠标左键摁住拖拽,鼠标前移,画面向上旋转、鼠标左移,画面向左旋转等等,其他方向同理 Scene窗口聚焦某个或某些对象在窗口中心的方法:选定目标对象/对象们,键盘按F (4)Cube对象的Transform组件修改Transform组件是整个Unity中重要的组件之一,之后也是接触最多,且属性改变带来的视觉效果也很明显,所以对Unity组件熟悉,可以从Transform组件开始。 将其他组件全部折叠 一开始的时候,其他组件也展开了,这样有些干扰我们的学习。一开始不用接触那么多组件,我们来将其折叠起来吧![]() ![]() ![]() Poition:在坐标系中的位置 Rotation:对象旋转的角度,逆时针为正,顺时针为负 Scale:对象的大小 结果图如下:![]() ![]() 恭喜完成针对物体的操作课程! 三、常用功能与组件介绍与练习在正式场景搭建前,还有一个功模块Gizmo 导航器,需要学习: 1、Gizmo 导航器导航器位置 透视视图与正交视图 Perspective 透视视图:近大远小Orthographic 正交视图 :物体的显示与距离无关。比如:一个立方体,离视野比较近的边与离视野比较远的边的长度相等。Scene窗口中的视图是透视视图还是正交视图,可以在Gizmo 导航器中设置 三视图 y轴:Top z轴:Front x轴:Right 在正式开始布置场景前,还需要注意:如何复制物体、光照设置、主摄像头、如何利用切换视图搭建场景 (1)复制物体
注:复制物体后,Scene窗口下的视图可能没有任何变化,这是因为二者重叠了。选定复制出来的物体,再移动一下就看到有两个了。 (2)光照设置 亮度与颜色修改![]() ![]() ![]() 注1:选定光源后,按E,然后视情况调整 注2:光源的位置,与大小,对光照效果没有任何影响,只需要调整角度即可 (3)主摄像头 手动调整主摄像头位置以及角度![]() ![]() ![]() 如何在只能看到二维的画面情况下,搭建出完美符合自己审美要求的三维场景?三视图! a、不断转换视角搭建场景
![]() ![]() 我们开始搭建场景吧,以第二个图为主,中间的亭子就用一个胶囊体代替。 将第二个图片,另存为在电脑里面 2、新建空对象并改名与地面 在Hierarchy窗口下创建九个Empty并改名如下![]() 新建一个imgs的文件夹 将地图参考图 导入Unity3d项目 ![]() ![]() 完成北面墙壁的效果图如下: ![]() ![]() ![]() 为了让整个墙与地面成为一个整体,可以自由缩放,旋转而不影响结构,我们需要将其制成一个prefab 预制体。 (1) 新建一个空物体命名为迷宫,并列入刚刚的建模模型![]()
游戏地图制备好了,第二步就是创建一个玩家Player。 玩家角色 是游戏的灵魂之一,单独的场景无法与游玩的人进行交互。需要通过玩家这一身份与场景进行交互,这样更有代入感一些。 1、玩家 Player!我们就定义一个正方体为Player。当然也可以是其他的形状,或者人什么的。 2、创建一个实现玩家移动控制功能的C#文件创建一个叫Scripts文件夹 在Scripts文件夹内创建C# Script 编写程序 从之前的学习可以看出,只要修改物体的Transform组件中的position属性即可实现,修改物体位置的效果。 综上,编程目标:让按键与修改目标物体的position属性绑定,形成一个交互效果。 具体实现代码以及注解如下: using System.Collections; using System.Collections.Generic; using UnityEditor; using UnityEngine; public class MoveControl : MonoBehaviour { // Start is called before the first frame update //注:所有的有小数的数字后面都要加f,表示是float数据类型 public float speed = 8.0f; public float Rotatespeed = 60.0f; void Start() { Application.targetFrameRate = 60;//设置帧率为60帧率 //注:设置帧率为60帧,表示游戏会尽量把帧率往60帧靠近,不是固定60帧 } // Update is called once per frame void Update() { KeyControl(); } private void KeyControl() { //Translate是transform组件中自带的修改自身position属性的函数,在原有的基础上进行加处理 //Time.deltaTime :记录每帧的用时 //distance(一帧 移动距离)=speed(速度) * Time.deltaTime(一帧时间) //Translate(x,y,z,type):加的x,y,z值,由于一般设定z轴为前方,所以加z即可,Space.Self表示使用自身坐标系,这个下一章教材会讲解 if (Input.GetKey(KeyCode.W)) { this.transform.Translate(0, 0, speed * Time.deltaTime, Space.Self); //W 前进 Debug.Log(speed * Time.deltaTime); } if (Input.GetKey(KeyCode.S)) { this.transform.Translate(0, 0, -speed * Time.deltaTime, Space.Self);//S 后退 } //Rotate是transform组件中自带的修改自身属性的函数,在原有的基础上进行加处理 //逆时针为减法,顺时针加法 //y轴是top,旋转一般是人头往左或往右,所以一般我们默认以y轴为旋转轴 if (Input.GetKey(KeyCode.A)) { this.transform.Rotate(0, -Rotatespeed * Time.deltaTime, 0,Space.Self);//A逆时针旋转 } if (Input.GetKey(KeyCode.D)) { this.transform.Rotate(0, Rotatespeed * Time.deltaTime, 0, Space.Self);//A逆时针旋转 } } } 3、将MoveControl脚本添加进Player
https://www.aigei.com/music/class/romantic_3/ ![]() ![]() ![]() 修改Speed:影响玩家的速度 修改Rotatespeed:影响玩家的旋转速度 2、游戏导出File —> Build Settings 打开导出设置 如果你能跟着做到这里,那么恭喜!Unity成功入门了,下一节将开始更深入的各项功能与组件的使用,以及实现各类基础功能的脚本书写练习,模型导入与导出,最终实现一个使用Unity开发的星战游戏Demo! 下期预告,星战前夜! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |